new_list = []

#定义显示菜单功能函数
def dijia():
    print('*' * 50)
    print('欢迎使用[名片管理系统]v1.0')
    print()
    print('1.新建名片')
    print('2.显示全部')
    print('3.查询名片')
    print()
    print('0.退出系统')
    print('*' * 50)


#定义新建名片
def xb0():
    name_str = input('请输入姓名: ')
    phone_str = input('请输入电话号码: ')
    qq_str = input('请输入qq号码: ')
    email_str = input('请输入电子邮箱: ')
    new_disr = {'name':name_str,'phone':phone_str,'qq':qq_str,'email':email_str}
    new_list.append(new_disr)
    print('新建姓名是%d 的名片成功 % name_str')


#查询全部名片
def xb1():
    if len(new_list) == 0:
        print('当前名片列表中没有数据，请新建名片')
        return
    print('-' * 50)
    print('姓名'.ljust(10),'电话'.ljust(10),'QQ号码'.ljust(10),'邮箱'.ljust(10),sep='\t')
    print('-' * 50)
    for mp in new_list:
        print(mp.get('name').ljust(10),mp.get('phone').ljust(10),mp.get('qq').ljust(10),mp.get('email').ljust(10),sep='\t')
    print('-' * 50)


# 查询名片功能函数
def xb2():
    find_name = input('请输入您要查询的姓名')
    for mp in new_list:
        if mp.get('name') == find_name:
            print('-' * 50)
            print('姓名'.ljust(10),'电话'.ljust(10),'qq'.ljust(10),'邮箱'.ljust(10),sep='\t')
            print('-' * 50)
            print(mp.get('name').ljust(10),mp.get('phone').ljust(10),mp.get('qq').ljust(10),mp.get('email').ljust(10),sep='\t')
            print('-' * 50)
            cz(mp)
            break
    else:
        print('没有找到姓名是 %s 的信息，请核对后重新输入！' % find_name)


#查询后操作名片
def cz(sc):
    zx = input('请输入对名片的操作选择[1.修改   2.删除   0.返回上一级]:')
    if zx == '1':
        sc['name'] = input_update('请输入修改后的姓名[不修改直接回车]:',sc.get('name'))
        sc['phone'] = input_update('请输入修改后的电话[不修改直接回车]:',sc.get('phone'))
        sc['qq'] = input_update('请输入修改后的qq号码[不修改直接回车]:',sc.get('qq'))
        sc['email'] = input_update('请输入修改后的邮箱[不修改直接回车]:',sc.get('email'))
        print('修改名片成功！')
    elif zx == '2':
        new_list.remove(sc)
    elif zx == '0':
        print()
    else:
        print('您的输入有误，请重新输入')

def input_update(maq,sc_value):
    info = input(maq)
    if len(info) > 0:
        return info
    else:
        return sc_value